package com.aatrox.bhsypro.util;

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Calendar;
import java.util.Date;

/**
 * @Author zhushaojie
 * @Date 2020/6/15 18:15
 */
public class TencentYunVedioUtil {
   
//推流防盗链的key 你自己的推流K
public static final String push_key = "26e1067623d078697c6b7e78975aec79";
//拉流防盗链的key 你自己的直播K，注意域名需要去解析CNAME，推流k和拉流k可能相同
public static final String play_key = "XXXXXXXXXXXXXXXX";
//推流地址 
public static final String pushUrl ="rtmp://156829.livepush.myqcloud.com/live/Aatrox?txSecret=db3be1b9780b0d1abd6ae51d2b76905b&txTime=619FBD9B";
//拉流地址 例子 rtmp  只需要将push 改成play即可
//自己申请的播放地址域名xx.xxx.cn或xx.xxx.com
public static final String playUrl_rtmp ="rtmp://xx.xxx.cn/live/xxxxx";
public static final String playUrl_flv ="http://xx.xxx.cn/live/xxxxx.flv";
public static final String playUrl_hls ="http://xx.xxx.cn/live/xxxxx.m3u8";


/**
      * 生成防盗链签名
      * @param key ：防盗链key
      * @param streamName ：直播码（或称作流ID）
      * @param txTime ：过期时间 16进制的unix时间戳
      * @return
      */
public static String genSign(String key,String streamName, String txTime) {
return MD5Encode.getMD5Str(key+streamName+txTime);
}

    /**
     * 播放
     * @param key
     * @param txTime
     * @return
     */
    public static String pushSign(String key, String txTime) {
        return MD5Encode.getMD5Str(key+txTime);
    }
/**
      * 生成直播码
      * 直播码 也叫房间号，推荐用随机数字或者用户ID，注意一个合法的直播码需要拼接 BIZID 前缀。
      * @param bizid 
      * @param userId 用户id
      * @return
      */
public static String genLiveCode(String bizid,String userId) {
return bizid+"_"+userId;
}

    /**
     * 随机生成6位数字
     */
    public static String bizid(){
        int newNum = (int)((Math.random()*9+1)*100000);
        return String.valueOf(newNum);
    }
/**
      * 将传入的时间转换为 16进制
      * @param date
      * @return
      */
public static String to16Hex(Date date) {
Long ab = date.getTime()/1000;
String a = Long.toHexString(ab);
return a.toUpperCase();
}

        /**
      * 将当前时间加1天
      */
public static Date addOneDay() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 1);
Date date = cal.getTime();
return date;
}
/**
      * 校验是否在线
      * @param urls 拉流地址
      * @return
      */
public static boolean isPush(String urls) {
try {
URL url = new URL(urls);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(1000);
conn.setReadTimeout(1000);
conn.setRequestMethod("GET");
conn.connect();
return conn.getResponseCode() == 200;
} catch (Exception e) {
}
return false;
}
}

